package cn.lzx.controller;

import cn.lzx.domain.User;
import cn.lzx.feign.UserService;
import cn.lzx.orderBlockHander.OrderBlockHandler;
import cn.lzx.orderBlockHander.OrderFallbackClass;
import com.alibaba.csp.sentinel.annotation.SentinelResource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope // 动态刷新配置注解
@RequestMapping("/order")
public class OrderController {


    @Autowired
    private UserService userService;


    @GetMapping("/getById/{id}")
    @SentinelResource(value="order-server-getById", blockHandler = "getUserHandler",
    blockHandlerClass = OrderBlockHandler.class,
    fallback = "getByIdFallback",
    fallbackClass = OrderFallbackClass.class)
    public User getById(@PathVariable("id") Long id) {
       /* int i = 1/0;*/
        return userService.getById(id);
    }

   /* public User getByIdFallback(@PathVariable("id") Long id,Throwable throwable) {
        return new User(-2L,"降级了","服务器繁忙");
    }
*/
}
